Dyanamically adapting a voltage of a clock generation circuit

ABSTRACT

In one embodiment, a processor includes a plurality of functional units each to independently execute instructions and a clock distribution circuit having a clock signal generator to generate a clock signal. The clock distribution circuit is coupled to receive a first operating voltage from a first voltage rail and the functional units are coupled to independently receive at least one second operating voltage from one or more second voltage rails. Other embodiments are described and claimed.

TECHNICAL FIELD

Embodiments relate to power management of a system, and moreparticularly to power management of operating voltages.

BACKGROUND

Advances in semiconductor processing and logic design have permitted anincrease in the amount of logic that may be present on integratedcircuit devices. As a result, computer system configurations haveevolved from a single or multiple integrated circuits in a system tomultiple hardware threads, multiple cores, multiple devices, and/orcomplete systems on individual integrated circuits. Additionally, as thedensity of integrated circuits has grown, the power requirements forcomputing systems (from embedded systems to servers) have alsoescalated. Furthermore, software inefficiencies, and its requirements ofhardware, have also caused an increase in computing device energyconsumption. In fact, some studies indicate that computing devicesconsume a sizeable percentage of the entire electricity supply for acountry, such as the United States of America. As a result, there is avital need for energy efficiency and conservation associated withintegrated circuits. These needs will increase as servers, desktopcomputers, notebooks, Ultrabooks™, tablets, mobile phones, processors,embedded systems, etc. become even more prevalent (from inclusion in thetypical computer, automobiles, and televisions to biotechnology).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a portion of a system in accordance with anembodiment of the present invention.

FIG. 2 is a block diagram of a portion of a processor in accordance withan embodiment of the present invention.

FIG. 3 is a flow diagram of a method in accordance with an embodiment ofthe present invention.

FIG. 4 is a flow diagram of a method in accordance with anotherembodiment of the present invention.

FIG. 5 is a block diagram of a processor in accordance with anembodiment of the present invention.

FIG. 6 is a block diagram of a multi-domain processor in accordance withanother embodiment of the present invention.

FIG. 7 is an embodiment of a processor including multiple cores.

FIG. 8 is a block diagram of a system in accordance with an embodimentof the present invention.

FIG. 9 is a block diagram of a processor in accordance with anotherembodiment of the present invention.

DETAILED DESCRIPTION

In various embodiments, a clock distribution system of a processor orother system on chip (SoC) can be independently controlled separatelyfrom functional units of the processor. More specifically, embodimentsprovide for independent power delivery and voltage control for thesedifferent components of the processor. In doing so, independent powermanagement of the clock distribution system and the functional units mayoccur, which may enable power savings, as an operating voltage providedto the clock distribution circuit may be lower than one or moreoperating voltages to be supplied to the functional units.

In contrast, in processors in which a clock distribution system uses thesame voltage plane as the functional units that use the resulting clocksignal (often done both for cost savings and platform flexibility), theclock distribution system is over-designed and may consume significantpower, especially when the functional units operate at lower (efficient)operating points. This is so, as higher power consumption by the clockdistribution system limits the lowest power consumption floor that theprocessor can achieve during idle or low performance states.

Instead using embodiments described herein, power delivery to a clockdistribution system and functional units is decoupled. In addition, thedynamic clock power management techniques described herein optimize andtune the setting of a clock grid power plane for best power/performance.This is so in part, as the clock distribution system may be scaledindependently of the clock/power consumption in the functional units,particularly during idle scenarios.

In an embodiment, multiple stages are used to determine appropriatesettings for an operating voltage for the clock delivery network:frequency collection; voltage determination; and compensationcalibration. In the frequency collection stage, control logic queriesfunctional units to determine a desired clock frequency and calculatesan appropriate clock grid frequency. In the voltage determination stage,once the frequency is determined, the optimal voltage is determined byconsidering this frequency and additional factors such as temperatureand load line parameters. In the last stage, based on the currentoperating point, clock compensators and level shifters may be controlledto meet a clock skew target for the desired operating point.

Referring now to FIG. 1, shown is a block diagram of a portion of asystem in accordance with an embodiment of the present invention. Asshown in FIG. 1, system 100 may include various components, including aprocessor 110 which as shown is a multicore processor. Processor 110 maybe coupled to a power supply 150 via an external voltage regulator 160,which may perform a first voltage conversion to provide a primaryregulated voltage to processor 110. Note although a single externalvoltage regulator is shown, in other embodiments multiple regulators maybe present.

As seen, processor 110 may be a single die processor such as a multicoreprocessor including multiple cores 120 _(a)-120 _(n) or other SoC. Inaddition, each core may be associated with an integrated voltageregulator (IVR) 125 _(a)-125 _(n) which receives the primary regulatedvoltage via a first voltage or power rail P1 and generates an operatingvoltage to be provided to one or more agents of the processor associatedwith the IVR. The IVR implementation of FIG. 1 may be provided to allowfor fine-grained control of voltage and thus power and performance ofeach individual core. As such, each core can operate at an independentvoltage and frequency, enabling great flexibility and affording wideopportunities for balancing power consumption with performance.

A clock distribution circuit 128 is also present in processor 110. Ingeneral, clock distribution circuit 128 is configured to generate aclock signal to provide to one or more functional units of theprocessor. To this end, to enable operation of clock distributioncircuit 128, an independent operating voltage is provided from voltageregulator 160 via a second voltage or power rail P2. Note that withmultiple power rails provided to processor 110 from voltage regulator160, independent operating voltages may be provided to clockdistribution circuit 128 and a remainder of the processor. Furthermore,because it is possible that the operating voltage for clock distributioncircuit 128 may be lower than a highest operating voltage provided viafirst power rail P1, second power rail P2 may be a low current powerrail, reducing size and costs. Note that while not shown in FIG. 1 forease of illustration understand that clock distribution circuit 128generates one or more clock signals that may be provided to each of thefunctional units present in processor 110.

Still referring to FIG. 1, additional components may be present withinthe processor including an input/output interface 132, another interface134, and an integrated memory controller 136. As seen, each of thesecomponents may be powered by another integrated voltage regulator 125_(x). In one embodiment, interface 132 may be in accordance with theIntel® Quick Path Interconnect (QPI) protocol, which provides forpoint-to-point (PtP) links in a cache coherent protocol that includesmultiple layers including a physical layer, a link layer and a protocollayer. In turn, interface 134 may be in accordance with a PeripheralComponent Interconnect Express (PCIe™) specification, e.g., the PCIExpress™ Specification Base Specification version 2.0 (published Jan.17, 2007).

Also shown is a power control unit (PCU) 138, which may includehardware, software and/or firmware to perform power managementoperations with regard to processor 110. As seen, PCU 138 providescontrol information to external voltage regulator 160 via a digitalinterface to cause the voltage regulator to generate the appropriateregulated voltage. PCU 138 also provides control information to IVRs 125via another digital interface to control the operating voltage generated(or to cause a corresponding IVR to be disabled in a low power mode).

In various embodiments, PCU 138 may include clock control logic tocontrol an operating frequency of the clock signal generated by clockdistribution circuit 128. Furthermore, such clock control logic may beconfigured to perform dynamic adaptive voltage control of the operatingvoltage provided to clock distribution circuit 128, as described furtherherein.

While not shown for ease of illustration, understand that additionalcomponents may be present within processor 110 such as uncore logic, andother components such as internal memories, e.g., one or more levels ofa cache memory hierarchy and so forth. Furthermore, while shown in theimplementation of FIG. 1 with an integrated voltage regulator,embodiments are not so limited.

Although the following embodiments are described with reference toenergy conservation and energy efficiency in specific integratedcircuits, such as in computing platforms or processors, otherembodiments are applicable to other types of integrated circuits andlogic devices. Similar techniques and teachings of embodiments describedherein may be applied to other types of circuits or semiconductordevices that may also benefit from better energy efficiency and energyconservation. For example, the disclosed embodiments are not limited toany particular type of computer systems, and may be also used in otherdevices, such as handheld devices, systems on chip (SoCs), and embeddedapplications. Some examples of handheld devices include cellular phones,Internet protocol devices, digital cameras, personal digital assistants(PDAs), and handheld PCs. Embedded applications typically include amicrocontroller, a digital signal processor (DSP), network computers(NetPC), set-top boxes, network hubs, wide area network (WAN) switches,or any other system that can perform the functions and operations taughtbelow. Moreover, the apparatus', methods, and systems described hereinare not limited to physical computing devices, but may also relate tosoftware optimizations for energy conservation and efficiency. As willbecome readily apparent in the description below, the embodiments ofmethods, apparatus', and systems described herein (whether in referenceto hardware, firmware, software, or a combination thereof) are vital toa ‘green technology’ future, such as for power conservation and energyefficiency in products that encompass a large portion of the US economy.

Note that the adaptive voltage control for a clock distribution systemdescribed herein may be independent of and complementary to an operatingsystem (OS)-based mechanism, such as the Advanced Configuration andPlatform Interface (ACPI) standard (e.g., Rev. 3.0b, published Oct. 10,2006). According to ACPI, a processor can operate at various performancestates or levels, so-called P-states, namely from P0 to PN. In general,the P1 performance state may correspond to the highest guaranteedperformance state that can be requested by an OS. In addition to this P1state, the OS can further request a higher performance state, namely aP0 state. This P0 state may thus be an opportunistic or turbo mode statein which, when power and/or thermal budget is available, processorhardware can configure the processor or at least portions thereof tooperate at a higher than guaranteed frequency. In many implementations aprocessor can include multiple so-called bin frequencies above the P1guaranteed maximum frequency, exceeding to a maximum peak frequency ofthe particular processor, as fused or otherwise written into theprocessor during manufacture. In addition, according to ACPI, aprocessor can operate at various power states or levels. With regard topower states, ACPI specifies different power consumption states,generally referred to as C-states, C0, C1 to Cn states. When a core isactive, it runs at a C0 state, and when the core is idle it may beplaced in a core low power state, also called a core non-zero C-state(e.g., C1-C6 states), with each C-state being at a lower powerconsumption level (such that C6 is a deeper low power state than C1, andso forth).

Referring now to FIG. 2, shown is a block diagram of a portion of aprocessor 200 in accordance with an embodiment of the present invention.As shown in FIG. 2, processor 200 includes a clock distribution circuit(alternately referred to herein as a clock grid or clock distributionnetwork) including elements to generate a clock signal at a desiredfrequency and to provide the clock signal to various functional units ofthe processor. As seen in the embodiment of FIG. 2, a PLL 210 ispresent. This PLL generates a clock signal at a frequency requested by agiven control entity, such as a PCU or other processor or platformcomponent.

As seen, PLL 210 is coupled to further components of a clockdistribution circuit 220, also commonly referred to as a clock grid. Inthe embodiment shown, clock distribution circuit 220 includes aplurality of branches 220 a-220 c each of which is to couple to acorresponding functional unit 250 a-250 c. These functional units mayvary in different embodiments and can be any type of logic present in aprocessor such as one or more cores (homogeneous or heterogeneouscores), graphics processing units, fixed function units, or specializedintellectual property (IP) blocks. In other implementations understandthat finer grained clock control may be possible, in which thecomponents of circuit 200 are all within a single functional unit suchas a core.

In general, each branch 220 includes a series chain of drivers orbuffers between PLL 210 and a corresponding functional unit. Note thateach corresponding branch 220 has an equal number of serial drivers inits path from a distribution node 225 to a corresponding end ofdistribution point. Furthermore, note that at least some of branches 220may have a different fanout width, equal to a number of individual clocksignals to be provided to the corresponding functional unit. Forexample, branch 220 a is shown to include a fanout width of 8, such that8 individual versions of the clock signal may be provided to functionalblock 250 a, as this functional block may include large amounts of logicto be operated using these clock signals (e.g., a large out-of-ordervector-based core). However, note that a smaller fanout width is presentin branches 220 b and 220 c. Of course understand that different fanoutwidths may be present in different designs.

As further shown in FIG. 2, at an end of distribution point for each ofthe branches, a corresponding level shifter 230 a-230 c is present. Ingeneral, these level shifters are configured to provide a voltage levelshift from a voltage level at which PLL 210 operates to a correspondingvoltage level at which the corresponding functional unit operates, toallow operation in the different voltage domain. Level shifters 230 maybe controlled using clock control logic of a PCU as described herein. Inaddition, corresponding compensation logics 240 a and 240 b are providedto adjust the edge of the clock signal to align with the end ofdistribution. More specifically, compensation logic 240 is configured toprovide phase shift compensation such that the clock signals provided toeach of the functional units have minimal skew or phase mismatch betweenthem. To this end, compensation logic 240 a is configured to determine aphase shift between clock edges of the clock signal being provided tofunctional units 250 a and 250 b and to perform appropriate phaseshifting of the clock edges to reduce or remove undesired skew (andsimilarly compensation logic 240 b couples between functional units 250b and 250 c and operates in the same manner). Although shown at thishigh level in the embodiment of FIG. 2, understand the scope of thepresent invention is not limited in this regard.

According to various embodiments, a processor includes multiple voltageplanes and the voltage source for the clock distribution network isdecoupled from the voltage source for the functional units. Morespecifically, embodiments may provide a first voltage plane or domainthat includes PLL 210, clock distribution circuit 220, and compensationlogic 240, while level shifters 230 may be implemented both within theclock distribution and functional block voltage domains. In turn, one ormore independent and separate voltage domains may include functionalunits 250 a-250 c. Understand that each of these voltage domains mayreceive an operating voltage from a dedicated voltage or power rail thatin turn is coupled to a voltage regulator. In some embodiments, thisindependent voltage rail coupled to the PLL may be a low current voltagerail that is not coupled to the functional units. In differentimplementations, this voltage regulator may be internal to a processoror may be an external voltage regulator. In some implementations asingle voltage regulator may be coupled via multiple power rails to thecorresponding voltage domains. In other embodiments, multiple voltageregulators may be provided, each associated with a corresponding voltagedomain.

By decoupling voltage signals and thus power distribution between clockcircuitry and functional units of a processor, a lower operating voltagemay be realized, at least for the clock distribution circuit. In thisway, reduced power consumption can be realized. This is so, as a clockdistribution circuit may operate at a lower operating voltage thanfunctional unit circuitry, particularly when a given functional unit isoperating in a high power mode, such as a turbo mode in which a core orother functional unit operates at a turbo mode frequency and at a highervoltage level. By providing corresponding level shifters and phasecompensation at an end of distribution of branches of a clockdistribution circuit, the clock signal being provided from the clockdistribution grid may be tuned and/or matched to the operating voltageat which the functional units are operating. And when a processor islightly loaded (e.g., in a lower power state) the clock operatingvoltage may be even lower, as there may be fewer active functional unitsto drive.

Referring now to FIG. 3, shown is a flow diagram of a method inaccordance with an embodiment of the present invention. In general,method 300 may operate to dynamically determine and control clock gridvoltage and frequency. As shown in FIG. 3, method 300 may be used toestablish an operating voltage for a clock distribution network and tocontrol components of the distribution network and corresponding logicto enable a clock signal generated at one voltage to be provided tocorresponding functional units at a potentially different voltage. In anembodiment, method 300 may be performed by logic of a power controller,such as clock control logic of a PCU. In addition, various portions ofthe method such as the compensation performed may be done under thedirection of this clock control logic and further using additionalcompensation logic associated with the clock distribution circuit. Inone particular implementation, method 300 may be implemented as part offirmware for a power controller such as so-called P-code that operatesaccording to an established periodic interval, such as one millisecondor other predetermined interval. Also understand that method 300 mayfurther be executed on a system reset or according to otherpredetermined operating conditions.

As seen, method 300 begins by collecting operating frequencies forvarious functional units of the processor (block 305). In an embodiment,these operating frequency values may be received from different sourcessuch as software, hardware and/or firmware. For example, in anembodiment these operating frequencies may be determined responsive torequests for operation in a given P-state. Alternately, a hardware-basedmechanism may be provided such that each functional unit provides ameasure of its operating frequency to the clock control logic. Note alsothat these operating frequency requests may be received asynchronouslyor at random times and stored, e.g., in a buffer or other temporarystorage so that they can be analyzed when method 300 is executed. Thusas seen, at block 308 these incoming frequency requests may be receivedand stored.

From all of these frequencies provided, next at block 310 a clock gridfrequency may be determined. In an embodiment, this clock gridfrequency, which may be the operating frequency at which a PLL generatesa clock signal, may be set to a maximum of the collected functional unitfrequencies. Then based on this determined clock grid frequency, acorresponding clock grid operating voltage may be determined (block315). In an embodiment, in addition to the clock grid frequency,environmental information such as temperature information, load linecapabilities, and process variables such as device characteristics(e.g., leakage and transistor type), may be taken into account indetermining an appropriate operating voltage for the clock grid(received at block 312). Note that with regard to these variables,process and platform-based inputs may be configured as hardcodedsettings stored in a non-volatile storage and provided at reset.However, the temperature information may dynamically change duringoperation and can be regularly provided to clock control logic duringexecution of method 300.

To generate the clock grid voltage at the desired operating voltagelevel, clock control logic may send a control signal to a correspondingvoltage regulator to enable the voltage regulator to dynamically modifyan output level to the requested operating voltage level.

Next, at diamond 320 it can be determined whether a voltage (e.g., at asupply voltage node coupled to an input of the PLL) is less than therequested clock grid operating voltage. If so, control passes to block325 where the clock control logic can request the voltage regulator tofurther increase the operating voltage. Similarly, if the voltage at thesupply voltage node is greater than the requested clock grid voltage,control operations at diamond 330 and block 335 are performed.

When it is determined that the correct requested clock grid operatingvoltage is present, control passes from diamond 330 to block 340 whereclock compensation logic may be activated. That is, because at thispoint the PLL is operating at the desired operating voltage, activeclock compensation can be performed. Note that this compensation takesmultiple forms and includes control of level shifters to enable avoltage level shift from the operating voltage of the clock grid to theoperating voltage of the corresponding functional units. In addition,phase compensation occurs to remove undesired skew between the clocksignal as provided independently to the different functional units. Ingeneral, the active compensation logic may operate to adjust this clockskew (namely, a delta between clock edges at the point of distribution(at the end of the branches) and the clock source) to be smaller than amaximum skew setting. Note that in some embodiments, this setting can bechanged based on profiling system behavior and optimizing tradeoffsbetween power and performance. Although the scope of the presentinvention is not limited in this regard, in an embodiment this clockcompensation for phase differences may include determining the requiredclock delay and adjusting the logic (such as bubble generator buffers)to account for larger skew at lower operating points (e.g., using adifferent pointer separation in the buffers).

Next it is determined whether the remaining skew between the clocksignal as provided to corresponding functional units is greater than amaximum skew value (diamond 345). If so, further active clockcompensation is performed at block 340. Otherwise, method 300 concludes.Although shown at this high level in the embodiment of FIG. 3,understand the scope of the present invention is not limited in thisregard. For example, while shown as a single maximum skew value,understand that in different implementations the maximum skew parametermay be dynamically adjusted, e.g., based on operating point andperformance needs from the system.

In addition, understand that other options are possible. For example,the determined clock grid voltage may turn out to be too low. Such a lowvoltage for the clock distribution network may cause adverse effects,such as an undesired amount of skew in which insufficient clockcompensation may occur. In such cases, the operating voltage may beadaptively increased in a stepwise fashion until it is determined (atdiamond 345) that a remaining skew value is less than the maximum skewvalue. That is, it can be determined whether skew compensation resultsin a residual skew value less than the maximum skew value within athreshold duration. If not, method 300 may be performed iteratively withgradual increases in operating voltage until the residual skew value isless than the maximum skew value.

Furthermore, understand that in some operating conditions, the clockdistribution network and one or more the functional units may operate ata common operating voltage level. In such cases, the operation of method300 may be greatly simplified and certain circuitry, such as the levelshifters, may be bypassed in this condition. Furthermore, while theembodiment of FIG. 3 assumes a single clock distribution network thatgenerates a single clock signal at one operating frequency, it ispossible for multiple clock distribution networks to be provided, eachwith a corresponding PLL, and each capable of generating a differentclock signal at a different operating frequency and further beingpowered by independent power rails.

Referring now to FIG. 4, shown is a flow diagram of a method inaccordance with another embodiment of the present invention. As shown inFIG. 4, method 350 may similarly be performed by clock control logicsuch as logic of the PCU. In general, method 350 describes theoperations performed in adaptively and dynamically controlling operatingvoltage during processor operation. As seen, method 350 begins bydetermining an original operating voltage for the clock distributioncircuit (block 360). In an embodiment, this determination may beperformed on system reset when the processor is powered up. As describedabove, the voltage determination may take into account the operatingfrequency at which the clock signal is to be generated, along withvarious environmental conditions including temperature, load lineinformation and so forth.

Then at block 370, a voltage regulator and compensation logic of theclock distribution circuit may be controlled accordingly. For thevoltage regulator, this control may include sending a control signal,e.g., in the form of a voltage identification code (VID) to cause thevoltage regulator to generate the requested operating voltage, which maybe provided by an independent power rail coupled between the voltageregulator and the clock distribution circuit. For purposes of thecompensation logic, control signals may be communicated to enable thecompensation logic both to perform phase correction as well as controllevel shifters to enable voltage level shifting as described herein.

Still referring to FIG. 4, next it can be determined, e.g., duringnormal operation, whether a change in activity level of one or morefunctional units has occurred (diamond 380). Such change in activitylevel may occur routinely during normal system operation as variouscores and other functional units of a processor enter into and exit fromvarious activity states including active states, low power states, turbomode states and so forth. On a change in activity level, control passesto diamond 385 where it can be determined whether a change in operatingvoltage is appropriate, in light of the activity level change. Forexample, when a functional unit (or multiple units) is placed into a lowpower state in which this unit is powered off, a portion of the clockdistribution network may be disabled, triggering a lighter load for theclock signal generated. Accordingly, the clock distribution circuit mayoperate at a lower operating voltage.

Thus depending on, e.g., the level in the amount of fanout to beprovided, it can be determined whether a change in this originaloperating voltage is warranted. If so, control passes to block 390,where a determination may be made as to an appropriate updated operatingvoltage for the clock distribution circuit, which may be at a lowerlevel than the original operating voltage. Otherwise control passes backto diamond 380 discussed above to determine whether another change inactivity level occurs. When a new operating voltage is warranted asdetermined at block 390, control then passes to block 395 where thevoltage regulator and compensation logic of the clock distributioncircuit may be controlled accordingly, e.g., by sending updated controlsignals. Although shown at this high level in the embodiment of FIG. 4,understand the scope of the present invention is not limited in thisregard.

Accordingly, embodiments provide techniques to decouple the clock gridpower from the power plane used for one or more functional units. Inaddition, embodiments provide a hardware-based mechanism to track,control and compensate clock signal generation.

Embodiments can be implemented in processors for various marketsincluding server processors, desktop processors, mobile processors andso forth. Referring now to FIG. 5, shown is a block diagram of aprocessor in accordance with an embodiment of the present invention. Asshown in FIG. 5, processor 400 may be a multicore processor including aplurality of cores 410 _(a)-410 _(n). In one embodiment, each such coremay be of an independent power domain and can be configured to enter andexit active states and/or maximum performance states based on workload.The various cores may be coupled via an interconnect 415 to a systemagent or uncore 420 that includes various components. As seen, theuncore 420 may include a shared cache 430 which may be a last levelcache. In addition, the uncore may include an integrated memorycontroller 440, various interfaces 450 and a power control unit 455. Invarious embodiments, power control unit 455 may include a clock controllogic 459 with an included dynamic adaptive voltage at logic 458 inaccordance with an embodiment of the present invention. Using thislogic, the operating voltage provided to a clock distribution networkmay vary from an operating voltage provided to functional units. Inaddition, clock control logic 459 may dynamically control compensationlogic such that clock signals generated at one voltage level can beshifted to a second level at which one or more functional unitsgenerate.

With further reference to FIG. 5, processor 400 may communicate with asystem memory 460, e.g., via a memory bus. In addition, by interfaces450, connection can be made to various off-chip components such asperipheral devices, mass storage and so forth. While shown with thisparticular implementation in the embodiment of FIG. 5, the scope of thepresent invention is not limited in this regard.

Referring now to FIG. 6, shown is a block diagram of a multi-domainprocessor in accordance with another embodiment of the presentinvention. As shown in the embodiment of FIG. 6, processor 500 includesmultiple domains. Specifically, a core domain 510 can include aplurality of cores 510 ₀-510 _(n), a graphics domain 520 can include oneor more graphics engines, and a system agent domain 550 may further bepresent. In some embodiments, system agent domain 550 may execute at anindependent frequency than the core domain and may remain powered on atall times to handle power control events and power management such thatdomains 510 and 520 can be controlled to dynamically enter into and exithigh power and low power states. Each of domains 510 and 520 may operateat different voltage and/or power. Note that while only shown with threedomains, understand the scope of the present invention is not limited inthis regard and additional domains can be present in other embodiments.For example, multiple core domains may be present each including atleast one core.

In general, each core 510 may further include low level caches inaddition to various execution units and additional processing elements.In turn, the various cores may be coupled to each other and to a sharedcache memory formed of a plurality of units of a last level cache (LLC)540 ₀-540 _(n). In various embodiments, LLC 540 may be shared amongstthe cores and the graphics engine, as well as various media processingcircuitry. As seen, a ring interconnect 530 thus couples the corestogether, and provides interconnection between the cores, graphicsdomain 520 and system agent circuitry 550. In one embodiment,interconnect 530 can be part of the core domain. However in otherembodiments the ring interconnect can be of its own domain.

As further seen, system agent domain 550 may include display controller552 which may provide control of and an interface to an associateddisplay. As further seen, system agent domain 550 may include a powercontrol unit 555 which can include a clock control logic 559 inaccordance with an embodiment of the present invention to dynamicallycontrol clock distribution and then enable a clock distribution networkto generate at a different operating voltage than functional blocksreceiving clock signals from the distribution network. In variousembodiments, this logic may execute the algorithms described above inFIG. 3.

As further seen in FIG. 6, processor 500 can further include anintegrated memory controller (IMC) 570 that can provide for an interfaceto a system memory, such as a dynamic random access memory (DRAM).Multiple interfaces 580 ₀-580 _(n) may be present to enableinterconnection between the processor and other circuitry. For example,in one embodiment at least one direct media interface (DMI) interfacemay be provided as well as one or more Peripheral Component InterconnectExpress (PCI Express™ (PCIe™)) interfaces. Still further, to provide forcommunications between other agents such as additional processors orother circuitry, one or more interfaces in accordance with an Intel®Quick Path Interconnect (QPI) protocol may also be provided. Althoughshown at this high level in the embodiment of FIG. 6, understand thescope of the present invention is not limited in this regard.

Referring to FIG. 7, an embodiment of a processor including multiplecores is illustrated. Processor 1100 includes any processor orprocessing device, such as a microprocessor, an embedded processor, adigital signal processor (DSP), a network processor, a handheldprocessor, an application processor, a co-processor, a system on a chip(SOC), or other device to execute code. Processor 1100, in oneembodiment, includes at least two cores—cores 1101 and 1102, which mayinclude asymmetric cores or symmetric cores (the illustratedembodiment). However, processor 1100 may include any number ofprocessing elements that may be symmetric or asymmetric.

In one embodiment, a processing element refers to hardware or logic tosupport a software thread. Examples of hardware processing elementsinclude: a thread unit, a thread slot, a thread, a process unit, acontext, a context unit, a logical processor, a hardware thread, a core,and/or any other element, which is capable of holding a state for aprocessor, such as an execution state or architectural state. In otherwords, a processing element, in one embodiment, refers to any hardwarecapable of being independently associated with code, such as a softwarethread, operating system, application, or other code. A physicalprocessor typically refers to an integrated circuit, which potentiallyincludes any number of other processing elements, such as cores orhardware threads.

A core often refers to logic located on an integrated circuit capable ofmaintaining an independent architectural state, wherein eachindependently maintained architectural state is associated with at leastsome dedicated execution resources. In contrast to cores, a hardwarethread typically refers to any logic located on an integrated circuitcapable of maintaining an independent architectural state, wherein theindependently maintained architectural states share access to executionresources. As can be seen, when certain resources are shared and othersare dedicated to an architectural state, the line between thenomenclature of a hardware thread and core overlaps. Yet often, a coreand a hardware thread are viewed by an operating system as individuallogical processors, where the operating system is able to individuallyschedule operations on each logical processor.

Physical processor 1100, as illustrated in FIG. 7, includes two cores,cores 1101 and 1102. Here, cores 1101 and 1102 are considered symmetriccores, i.e., cores with the same configurations, functional units,and/or logic. In another embodiment, core 1101 includes an out-of-orderprocessor core, while core 1102 includes an in-order processor core.However, cores 1101 and 1102 may be individually selected from any typeof core, such as a native core, a software managed core, a core adaptedto execute a native instruction set architecture (ISA), a core adaptedto execute a translated ISA, a co-designed core, or other known core.Yet to further the discussion, the functional units illustrated in core1101 are described in further detail below, as the units in core 1102operate in a similar manner.

As depicted, core 1101 includes two hardware threads 1101 a and 1101 b,which may also be referred to as hardware thread slots 1101 a and 1101b. Therefore, software entities, such as an operating system, in oneembodiment potentially view processor 1100 as four separate processors,i.e., four logical processors or processing elements capable ofexecuting four software threads concurrently. As alluded to above, afirst thread is associated with architecture state registers 1101 a, asecond thread is associated with architecture state registers 1101 b, athird thread may be associated with architecture state registers 1102 a,and a fourth thread may be associated with architecture state registers1102 b. Here, each of the architecture state registers (1101 a, 1101 b,1102 a, and 1102 b) may be referred to as processing elements, threadslots, or thread units, as described above. As illustrated, architecturestate registers 1101 a are replicated in architecture state registers1101 b, so individual architecture states/contexts are capable of beingstored for logical processor 1101 a and logical processor 1101 b. Incore 1101, other smaller resources, such as instruction pointers andrenaming logic in allocator and renamer block 1130 may also bereplicated for threads 1101 a and 1101 b. Some resources, such asre-order buffers in reorder/retirement unit 1135, ILTB 1120, load/storebuffers, and queues may be shared through partitioning. Other resources,such as general purpose internal registers, page-table base register(s),low-level data-cache and data-TLB 1115, execution unit(s) 1140, andportions of out-of-order unit 1135 are potentially fully shared.

Processor 1100 often includes other resources, which may be fullyshared, shared through partitioning, or dedicated by/to processingelements. In FIG. 7, an embodiment of a purely exemplary processor withillustrative logical units/resources of a processor is illustrated. Notethat a processor may include, or omit, any of these functional units, aswell as include any other known functional units, logic, or firmware notdepicted. As illustrated, core 1101 includes a simplified,representative out-of-order (OOO) processor core. But an in-orderprocessor may be utilized in different embodiments. The OOO coreincludes a branch target buffer 1120 to predict branches to beexecuted/taken and an instruction-translation buffer (I-TLB) 1120 tostore address translation entries for instructions.

Core 1101 further includes decode module 1125 coupled to fetch unit 1120to decode fetched elements. Fetch logic, in one embodiment, includesindividual sequencers associated with thread slots 1101 a, 1101 b,respectively. Usually core 1101 is associated with a first ISA, whichdefines/specifies instructions executable on processor 1100. Oftenmachine code instructions that are part of the first ISA include aportion of the instruction (referred to as an opcode), whichreferences/specifies an instruction or operation to be performed. Decodelogic 1125 includes circuitry that recognizes these instructions fromtheir opcodes and passes the decoded instructions on in the pipeline forprocessing as defined by the first ISA. For example, decoders 1125, inone embodiment, include logic designed or adapted to recognize specificinstructions, such as transactional instruction. As a result of therecognition by decoders 1125, the architecture or core 1101 takesspecific, predefined actions to perform tasks associated with theappropriate instruction. It is important to note that any of the tasks,blocks, operations, and methods described herein may be performed inresponse to a single or multiple instructions; some of which may be newor old instructions.

In one example, allocator and renamer block 1130 includes an allocatorto reserve resources, such as register files to store instructionprocessing results. However, threads 1101 a and 1101 b are potentiallycapable of out-of-order execution, where allocator and renamer block1130 also reserves other resources, such as reorder buffers to trackinstruction results. Unit 1130 may also include a register renamer torename program/instruction reference registers to other registersinternal to processor 1100. Reorder/retirement unit 1135 includescomponents, such as the reorder buffers mentioned above, load buffers,and store buffers, to support out-of-order execution and later in-orderretirement of instructions executed out-of-order.

Scheduler and execution unit(s) block 1140, in one embodiment, includesa scheduler unit to schedule instructions/operation on execution units.For example, a floating point instruction is scheduled on a port of anexecution unit that has an available floating point execution unit.Register files associated with the execution units are also included tostore information instruction processing results. Exemplary executionunits include a floating point execution unit, an integer executionunit, a jump execution unit, a load execution unit, a store executionunit, and other known execution units.

Lower level data cache and data translation buffer (D-TLB) 1150 arecoupled to execution unit(s) 1140. The data cache is to store recentlyused/operated on elements, such as data operands, which are potentiallyheld in memory coherency states. The D-TLB is to store recentvirtual/linear to physical address translations. As a specific example,a processor may include a page table structure to break physical memoryinto a plurality of virtual pages

Here, cores 1101 and 1102 share access to higher-level or further-outcache 1110, which is to cache recently fetched elements. Note thathigher-level or further-out refers to cache levels increasing or gettingfurther away from the execution unit(s). In one embodiment, higher-levelcache 1110 is a last-level data cache—last cache in the memory hierarchyon processor 1100—such as a second or third level data cache. However,higher level cache 1110 is not so limited, as it may be associated withor includes an instruction cache. A trace cache—a type of instructioncache—instead may be coupled after decoder 1125 to store recentlydecoded traces.

In the depicted configuration, processor 1100 also includes businterface module 1105 and a power controller 1160, which may performpower sharing control in accordance with an embodiment of the presentinvention. Historically, controller 1170 has been included in acomputing system external to processor 1100. In this scenario, businterface 1105 is to communicate with devices external to processor1100, such as system memory 1175, a chipset (often including a memorycontroller hub to connect to memory 1175 and an I/O controller hub toconnect peripheral devices), a memory controller hub, a northbridge, orother integrated circuit. And in this scenario, bus 1105 may include anyknown interconnect, such as multi-drop bus, a point-to-pointinterconnect, a serial interconnect, a parallel bus, a coherent (e.g.cache coherent) bus, a layered protocol architecture, a differentialbus, and a GTL bus.

Memory 1175 may be dedicated to processor 1100 or shared with otherdevices in a system. Common examples of types of memory 1175 includeDRAM, SRAM, non-volatile memory (NV memory), and other known storagedevices. Note that device 1180 may include a graphic accelerator,processor or card coupled to a memory controller hub, data storagecoupled to an I/O controller hub, a wireless transceiver, a flashdevice, an audio controller, a network controller, or other knowndevice.

Note however, that in the depicted embodiment, the controller 1170 isillustrated as part of processor 1100. Recently, as more logic anddevices are being integrated on a single die, such as SOC, each of thesedevices may be incorporated on processor 1100. For example in oneembodiment, memory controller hub 1170 is on the same package and/or diewith processor 1100. Here, a portion of the core (an on-core portion)includes one or more controller(s) 1170 for interfacing with otherdevices such as memory 1175 or a graphics device 1180. The configurationincluding an interconnect and controllers for interfacing with suchdevices is often referred to as an on-core (or un-core configuration).As an example, bus interface 1105 includes a ring interconnect with amemory controller for interfacing with memory 1175 and a graphicscontroller for interfacing with graphics processor 1180. Yet, in the SOCenvironment, even more devices, such as the network interface,co-processors, memory 1175, graphics processor 1180, and any other knowncomputer devices/interface may be integrated on a single die orintegrated circuit to provide small form factor with high functionalityand low power consumption.

Embodiments may be implemented in many different system types. Referringnow to FIG. 8, shown is a block diagram of a system in accordance withan embodiment of the present invention. As shown in FIG. 8,multiprocessor system 600 is a point-to-point interconnect system, andincludes a first processor 670 and a second processor 680 coupled via apoint-to-point interconnect 650. As shown in FIG. 8, each of processors670 and 680 may be multicore processors, including first and secondprocessor cores (i.e., processor cores 674 a and 674 b and processorcores 684 a and 684 b), although potentially many more cores may bepresent in the processors. Each of the processors can include a PCU orother logic to provide independent operating voltages to clockdistribution circuitry and the functional units receiving clock signalsfrom the distribution circuitry, as described herein.

Still referring to FIG. 8, first processor 670 further includes a memorycontroller hub (MCH) 672 and point-to-point (P-P) interfaces 676 and678. Similarly, second processor 680 includes a MCH 682 and P-Pinterfaces 686 and 688. As shown in FIG. 8, MCH's 672 and 682 couple theprocessors to respective memories, namely a memory 632 and a memory 634,which may be portions of system memory (e.g., DRAM) locally attached tothe respective processors. First processor 670 and second processor 680may be coupled to a chipset 690 via P-P interconnects 662 and 664,respectively. As shown in FIG. 8, chipset 690 includes P-P interfaces694 and 698.

Furthermore, chipset 690 includes an interface 692 to couple chipset 690with a high performance graphics engine 638, by a P-P interconnect 639.In turn, chipset 690 may be coupled to a first bus 616 via an interface696. As shown in FIG. 8, various input/output (I/O) devices 614 may becoupled to first bus 616, along with a bus bridge 618 which couplesfirst bus 616 to a second bus 620. Various devices may be coupled tosecond bus 620 including, for example, a keyboard/mouse 622,communication devices 626 and a data storage unit 628 such as a diskdrive or other mass storage device which may include code 630, in oneembodiment. Further, an audio I/O 624 may be coupled to second bus 620.Embodiments can be incorporated into other types of systems includingmobile devices such as a smart cellular telephone, tablet computer,netbook, Ultrabook™, or so forth.

Referring now to FIG. 9, shown is a block diagram of a processor inaccordance with another embodiment of the present invention. In theembodiment of FIG. 9, processor 1000 may be a system on a chip (SoC)including multiple domains, each of which may be controlled to operateat an independent operating voltage and operating frequency. As aspecific illustrative example, processor 1000 may be an Intel®Architecture Core™-based processor such as an i3, i5, i7 or another suchprocessor available from Intel Corporation, Santa Clara, Calif. However,other low power processors such as available from Advanced MicroDevices, Inc. (AMD) of Sunnyvale, Calif., an ARM-based design from ARMHoldings, Ltd. or customer thereof or a MIPS-based design from MIPSTechnologies, Inc. of Sunnyvale, Calif., or their licensees or adoptersmay instead be present in other embodiments such as an Apple A5processor, a Qualcomm Snapdragon processor, or Texas Instruments OMAPprocessor. Such SoC may be used in a low power system such as asmartphone, tablet computer, Ultrabook™ computer or other portablecomputing device.

In the high level view shown in FIG. 9, processor 1000 includes aplurality of core units 10100-1010 n. Each core unit may include one ormore processor cores, one or more cache memories and other circuitry.Each core unit 1010 may support one or more instructions sets (e.g., thex86 instruction set (with some extensions that have been added withnewer versions); the MIPS instruction set of MIPS Technologies ofSunnyvale, Calif.; the ARM instruction set (with optional additionalextensions such as NEON) of ARM Holdings of Sunnyvale, Calif.) or otherinstruction set or combinations thereof. Note that some of the coreunits may be heterogeneous resources (e.g., of a different design). Inaddition, each such core may be coupled to a cache memory which in anembodiment may be a shared level (L2) cache memory. A non-volatilestorage 1030 may be used to store various program and other data. Forexample, this storage may be used to store at least portions ofmicrocode, boot information such as a BIOS, other system software or soforth.

Each core unit 1010 may also include an interface such as a businterface unit to enable interconnection to additional circuitry of theprocessor. In an embodiment, each core unit 1010 couples to a coherentfabric that may act as a primary cache coherent on-die interconnect thatin turn couples to a memory controller 1035. In turn, memory controller1035 controls communications with a memory such as a dynamic randomaccess memory (DRAM) (not shown for ease of illustration in FIG. 9).

In addition to core units, additional processing engines are presentwithin the processor, including at least one graphics unit 1020 whichmay include one or more graphics processing units (GPUs) to performgraphics processing as well as to possibly execute general purposeoperations on the graphics processor (so-called GPGPU operation). Inaddition, at least one image signal processor 1025 may be present.Signal processor 1025 may be configured to process incoming image datareceived from one or more capture devices, either internal to the SoC oroff-chip. Other accelerators also may be present. In the illustration ofFIG. 9, a video coder 1050 may perform coding operations includingencoding and decoding for video information, e.g., providing hardwareacceleration support for high definition video content. A displaycontroller 1055 further may be provided to accelerate display operationsincluding providing support for internal and external displays of asystem. In addition, a security processor 1045 may be present to performsecurity operations such as secure boot operations, various cryptographyoperations and so forth.

Each of the units may have its power consumption controlled via a powermanager 1040. Power manager 1040 includes control logic to performindependent voltage control for clock distribution circuitry and thefunctional units driven by clocks generated by the distributioncircuitry, as described herein.

In some embodiments, SoC 1000 may further include a non-coherent fabriccoupled to the coherent fabric to which various peripheral devices maycouple. One or more interfaces 1060 a-1060 d enable communication withone or more off-chip devices. Such communications may be according to avariety of communication protocols such as PCIe™, GPIO, USB, I2C, UART,MIPI, SDIO, DDR, SPI, HDMI, among other types of communicationprotocols. Although shown at this high level in the embodiment of FIG.9, understand the scope of the present invention is not limited in thisregard.

The following examples pertain to further embodiments.

In one example, a processor comprises: a plurality of functional unitseach to independently execute instructions; and a clock distributioncircuit including a clock signal generator to generate a clock signaland a plurality of branches each to provide the clock signal to one ofthe plurality of functional units. The clock distribution circuit may becoupled to receive a first operating voltage from a first voltage railand the plurality of functional units coupled to receive at least onesecond operating voltage from one or more second voltage rails. Thefirst operating voltage and the at least one second operating voltagemay be independent.

In an example, a plurality of level shifters are each coupled between acorresponding branch of the clock distribution circuit and acorresponding functional unit to shift the clock signal from the firstoperating voltage to the at least one second operating voltage. Acontroller may be coupled between pairs of branches of the clockdistribution circuit to compensate for a phase shift between the clocksignal provided by each of the pairs of branches. A first compensationcircuit may control a voltage shift provided by a first level shiftercoupled between a first branch of the clock distribution circuit and afirst functional unit.

In an example, the plurality of branches each comprises a serial path ofclock drivers coupled between a distribution node coupled to a phaselock loop corresponding to the clock signal generator and acorresponding one of the plurality of level shifters. At least one ofthe serial paths includes a different fanout width than a fanout widthof others of the serial paths, in an example.

In an example, a power controller includes a clock control logic todynamically modify the first operating voltage, where the firstoperating voltage is dynamically modified to a lower voltage level thana level of the at least one second operating voltage. The clock controllogic may determine the level of the first operating voltage based atleast in part on a requested operating frequency for each of theplurality of functional units. In turn, the first voltage rail may becoupled to receive the first operating voltage from a first voltageregulator and the one or more second voltage rails may be coupled toreceive the at least one second operating voltage from the first voltageregulator.

Note that the above processor can be implemented using various means.

In an example, the processor comprises a SoC incorporated in a userequipment touch-enabled device.

In another example, a system comprises a display and a memory, andincludes the processor of one or more of the above examples.

In another example, a method comprises: determining a first operatingfrequency at which a clock distribution circuit of a processor is togenerate a clock signal based at least in part on one or more requestedoperating frequencies of a plurality of functional units of theprocessor; and causing a voltage regulator coupled to the clockdistribution circuit to provide a first operating voltage to the clockdistribution circuit. The first operating voltage may be independent ofa second operating voltage provided to the plurality of functional unitsthat receive the clock signal.

In an example, the method further includes level shifting the clocksignal from the first operating voltage to the second operating voltageand providing the clock signal at the second operating voltage to afirst functional unit of the plurality of functional units.

In an example, the method further includes determining a level of thefirst operating voltage based on one or more environmental conditions ofthe processor.

In an example, the method further includes compensating for a phasedifference between the clock signal to be provided to a first functionalunit and the clock signal to be provided to a second functional unit. Inaddition, the phase difference may be compensated until the phasedifference is less than a threshold difference. And, the first operatingvoltage may be increased if the phase difference is not less than thethreshold difference after a first duration.

In another example, a computer readable medium including instructions isto perform the method of any of the above examples.

In another example, an apparatus comprises means for performing themethod of any one of the above examples.

In another example, a system comprises: a processor including a firstvoltage domain having a plurality of cores, a power controller, and asecond voltage domain having a clock distribution network to generate aclock signal and to provide the clock signal to the plurality of cores.The first voltage domain may receive at least a first operating voltageand the second voltage domain may receive a second operating voltage.The system may further include a voltage regulator coupled to theprocessor. The voltage regulator may provide the at least one firstoperating voltage to the first domain via at least one first voltagerail and provide the second operating voltage to the second voltagedomain via a second voltage rail. The power controller may determine alevel for the at least one first operating voltage and the secondoperating voltage and communicate the level for the at least one firstoperating voltage and the second operating voltage to the voltageregulator.

In an example, the clock distribution network includes a phase lock loopto operate according to the second operating voltage, and the powercontroller is to instruct the phase lock loop to generate the clocksignal at a requested operating frequency. The requested operatingfrequency may correspond to a highest requested operating frequency forthe plurality of cores. The power controller may dynamically update thelevel for the at least one first operating voltage based on a change inan activity level of one or more of the plurality of cores,independently of the second operating voltage.

In another example, a machine-readable medium has stored thereoninstructions, which if performed by a machine cause the machine toperform a method comprising: determining a level of a first operatingvoltage for a clock distribution circuit of a processor including aplurality of functional units, where the first operating voltage isindependent of a second operating voltage supplied to the plurality offunctional units; controlling a compensation logic of the clockdistribution circuit to provide a clock signal generated by the clockdistribution circuit operating at the first operating voltage to atleast some of the plurality of functional units operating at the secondoperating voltage; and responsive to a change in an activity level ofone or more of the plurality of functional units, to dynamically updatethe level of the first operating voltage.

In an example, the method further includes level shifting the clocksignal from the first operating voltage to the second operating voltageand providing the clock signal at the second operating voltage to afirst functional unit of the plurality of functional units.

In an example, the method further includes: compensating for a phasedifference between the clock signal to be provided to a first functionalunit and the clock signal to be provided to a second functional unit;determining if the phase difference is less than a threshold difference;and increasing the level of the first operating voltage if the phasedifference is not less than the threshold difference after a firstduration.

In an example, the method further includes receiving the first operatingvoltage via a first power rail coupled between the processor and avoltage regulator and receiving the second operating voltage via asecond power rail coupled between the processor and the voltageregulator.

In an example, the method further includes determining a first operatingfrequency for the clock signal based at least in part on one or morerequested operating frequencies of the plurality of functional units ofthe processor, and determining the level of the first operating voltagebased on the first operating frequency and one or more environmentalconditions of the processor.

Understand that various combinations of the above examples are possible.

Embodiments may be used in many different types of systems. For example,in one embodiment a communication device can be arranged to perform thevarious methods and techniques described herein. Of course, the scope ofthe present invention is not limited to a communication device, andinstead other embodiments can be directed to other types of apparatusfor processing instructions, or one or more machine readable mediaincluding instructions that in response to being executed on a computingdevice, cause the device to carry out one or more of the methods andtechniques described herein.

Embodiments may be implemented in code and may be stored on anon-transitory storage medium having stored thereon instructions whichcan be used to program a system to perform the instructions. The storagemedium may include, but is not limited to, any type of disk includingfloppy disks, optical disks, solid state drives (SSDs), compact diskread-only memories (CD-ROMs), compact disk rewritables (CD-RWs), andmagneto-optical disks, semiconductor devices such as read-only memories(ROMs), random access memories (RAMs) such as dynamic random accessmemories (DRAMs), static random access memories (SRAMs), erasableprogrammable read-only memories (EPROMs), flash memories, electricallyerasable programmable read-only memories (EEPROMs), magnetic or opticalcards, or any other type of media suitable for storing electronicinstructions.

While the present invention has been described with respect to a limitednumber of embodiments, those skilled in the art will appreciate numerousmodifications and variations therefrom. It is intended that the appendedclaims cover all such modifications and variations as fall within thetrue spirit and scope of this present invention.

What is claimed is:
 1. A processor comprising: a plurality of functionalunits each to independently execute instructions; and a clockdistribution circuit including a clock signal generator to generate aclock signal and a plurality of branches each to provide the clocksignal to one of the plurality of functional units, wherein the clockdistribution circuit is coupled to receive a first operating voltagefrom a first voltage rail and the plurality of functional units arecoupled to receive at least one second operating voltage from one ormore second voltage rails, wherein the first operating voltage and theat least one second operating voltage are independent.
 2. The processorof claim 1, further comprising a plurality of level shifters eachcoupled between a corresponding branch of the clock distribution circuitand a corresponding functional unit to shift the clock signal from thefirst operating voltage to the at least one second operating voltage. 3.The processor of claim 2, further comprising a plurality of compensationcircuits each coupled between a pair of branches of the clockdistribution circuit to compensate for a phase shift between the clocksignal provided by each of the pair of branches.
 4. The processor ofclaim 3, further comprising a controller to control a voltage shiftprovided by a first level shifter coupled between a first branch of theclock distribution circuit and a first functional unit.
 5. The processorof claim 2, wherein the plurality of branches each comprises a serialpath of clock drivers coupled between a distribution node coupled to aphase lock loop corresponding to the clock signal generator and acorresponding one of the plurality of level shifters.
 6. The processorof claim 5, wherein at least one of the serial paths includes adifferent fanout width than a fanout width of others of the serialpaths.
 7. The processor of claim 1, further comprising a powercontroller including a clock control logic to dynamically modify thefirst operating voltage, wherein the first operating voltage isdynamically modified to a lower voltage level than a level of the atleast one second operating voltage.
 8. The processor of claim 7, whereinthe clock control logic is to determine the level of the first operatingvoltage based at least in part on a requested operating frequency foreach of the plurality of functional units.
 9. The processor of claim 1,wherein the first voltage rail is coupled to receive the first operatingvoltage from a first voltage regulator and the one or more secondvoltage rails are coupled to receive the at least one second operatingvoltage from the first voltage regulator.
 10. A method comprising:determining a first operating frequency at which a clock distributioncircuit of a processor is to generate a clock signal based at least inpart on one or more requested operating frequencies of a plurality offunctional units of the processor; and causing a voltage regulatorcoupled to the clock distribution circuit to provide a first operatingvoltage to the clock distribution circuit, the first operating voltageindependent of a second operating voltage provided to the plurality offunctional units of the processor that receive the clock signal.
 11. Themethod of claim 10, further comprising level shifting the clock signalfrom the first operating voltage to the second operating voltage andproviding the clock signal at the second operating voltage to a firstfunctional unit of the plurality of functional units.
 12. The method ofclaim 10, further comprising determining a level of the first operatingvoltage based on one or more environmental conditions of the processor.13. The method of claim 10, further comprising compensating for a phasedifference between the clock signal to be provided to a first functionalunit and the clock signal to be provided to a second functional unit.14. The method of claim 13, further comprising compensating for thephase difference until the phase difference is less than a thresholddifference.
 15. The method of claim 14, further comprising increasingthe first operating voltage if the phase difference is not less than thethreshold difference after a first duration.
 16. A system comprising: aprocessor including a first voltage domain having a plurality of cores,a power controller, and a second voltage domain having a clockdistribution network to generate a clock signal and to provide the clocksignal to the plurality of cores, wherein the first voltage domain is toreceive at least a first operating voltage and the second voltage domainis to receive a second operating voltage; and a voltage regulatorcoupled to the processor, the voltage regulator to provide the at leastone first operating voltage to the first domain via at least one firstvoltage rail and to provide the second operating voltage to the secondvoltage domain via a second voltage rail, wherein the power controlleris to determine a level for the at least one first operating voltage andthe second operating voltage and to communicate the level for the atleast one first operating voltage and the second operating voltage tothe voltage regulator.
 17. The system of claim 16, wherein the clockdistribution network includes a phase lock loop to operate according tothe second operating voltage, wherein the power controller is toinstruct the phase lock loop to generate the clock signal at a requestedoperating frequency.
 18. The system of claim 17, wherein the requestedoperating frequency corresponds to a highest requested operatingfrequency for the plurality of cores.
 19. The system of claim 16,wherein the power controller is to dynamically update the level for theat least one first operating voltage based on a change in an activitylevel of one or more of the plurality of cores, independently of thesecond operating voltage.
 20. A machine-readable medium having storedthereon instructions, which if performed by a machine cause the machineto perform a method comprising: determining a level of a first operatingvoltage for a clock distribution circuit of a processor including aplurality of functional units, wherein the first operating voltage isindependent of a second operating voltage supplied to the plurality offunctional units; controlling a compensation logic of the clockdistribution circuit to provide a clock signal generated by the clockdistribution circuit operating at the first operating voltage to atleast some of the plurality of functional units operating at the secondoperating voltage; and responsive to a change in an activity level ofone or more of the plurality of functional units, dynamically updatingthe level of the first operating voltage.
 21. The machine-readablemedium of claim 20, wherein the method further comprises level shiftingthe clock signal from the first operating voltage to the secondoperating voltage and providing the clock signal at the second operatingvoltage to a first functional unit of the plurality of functional units.22. The machine-readable medium of claim 20, wherein the method furthercomprises: compensating for a phase difference between the clock signalto be provided to a first functional unit and the clock signal to beprovided to a second functional unit; determining if the phasedifference is less than a threshold difference; and increasing the levelof the first operating voltage if the phase difference is not less thanthe threshold difference after a first duration.
 23. Themachine-readable medium of claim 20, wherein the method furthercomprises receiving the first operating voltage via a first power railcoupled between the processor and a voltage regulator and receiving thesecond operating voltage via a second power rail coupled between theprocessor and the voltage regulator.
 24. The machine-readable medium ofclaim 20, wherein the method further comprises determining a firstoperating frequency for the clock signal based at least in part on oneor more requested operating frequencies of the plurality of functionalunits of the processor, and determining the level of the first operatingvoltage based on the first operating frequency and one or moreenvironmental conditions of the processor.